package cn.com.msui.service.manage;

import java.util.List;

import cn.com.msui.domain.ViewItem;
import cn.com.msui.domain.manage.Menu;
import cn.com.msui.service.BaseService;

/**
 * 目录管理接口
 * 
 * @author Yuegz
 * 
 */
public abstract class MenuService extends BaseService {

	/**
	 * 获取一个目录的所有子目录
	 * 
	 * @param menu
	 *            父目录，如果为null代表获取所有根目录
	 * @return
	 * @throws Exception
	 */
	public abstract List<Menu> getChildrenMenus(Menu menu) throws Exception;

	/**
	 * 添加一个目录
	 * 
	 * @param menu
	 * @throws Exception
	 */
	public abstract void addMenu(Menu menu) throws Exception;

	/**
	 * 更新一个目录
	 * 
	 * @param menu
	 * @throws Exception
	 */
	public abstract void modifyMenu(Menu menu) throws Exception;

	/**
	 * 获取目录列表
	 * 
	 * @param view
	 * @return
	 * @throws Exception
	 */
	public abstract List<Menu> getMenus(ViewItem view) throws Exception;

	/**
	 * 通过ID批量删除目录与子目录
	 * 
	 * @param menuIds
	 * @throws Exception
	 */
	public abstract void removeMenus(String[] menuIds) throws Exception;

}
